WoT 1.27.1.0 introduced Persistent Data Cache(PDC).

PDC makes snapshot of core database into cache (data.wgpdc) after each client update, then use this cache for subsequential launch to improve loading time. Cache presumbly remain static until next major or mini patch.
If mods are present when this cache is being generated, resulting cache will be corrupted.

corrupted cache results in missing firing sound and effect, missing shot hit sound effect, 0-HP entity not register as dead, and random crash after that.




----------------------------
A natural solution is to launch game without any mod after each update, then install mods. But because mini-patch is not announced, player won't know they need to remove mods to generate a new healthy cache. So crash is inevitable, it's just a matter of time.



----------------------------
Attempt to inject into PDC routine to prevent it from loading from disk is not possible because it happens before any mods are activated.



----------------------------
Cache loaded from disk is disppatched into the following key modules:
<decal_map_config>
<path_builder>
<vehicles_list>
<vehicles_cache>
<tankmen_skills_config>
<tankmen_nations_config>
<arena_type_cache>
<personal_missions_season_cache>
<personal_missions_tile_cache>
<personal_missions_campaigns_cache>
<personal_missions_operations_cache>
<personal_missions_cache>
<customization_quests_cache>
<static_quests>
<gui_items_params_cache>

The way it works is that scripts/client/game.py inits each core module that initializes itself using PDC, and only load from xml when PDC returns None.
for example g_instance during scripts/client/helpers/DecalMap.py::init()


So by the time mods kick in, data is already dispatched into each individual core module. Merely shuting down PDC manager at this time is not enough. Corrupted data needs to be hunted down for each module.

Attempt to fix only corrupted data by reloading it from xml can solve the crash while retaining cache performance bonus. It's possible if we are only looking for a UML-related fix, as probably it's only <vehicles_cache> that concerns us. 

But to provide a general purpose fix for the entire modding community, one will have to repeat this method to include more core modules that's been modified by popular mods like sound and decals. Eventually it will cover almost all core modules. 

==============================
So, we can't use injection type mod, and we have to purge the entire loaded cache, not individual data set. The only solution is to do a in-place modding of 
scripts/common/persistent_data_cache_common/caches.py so it returns empty data {} during disk reading operation _tryToLoadCachedData()

This kind of modding is highly susceptible to WoT update. 
